1. Field of the Invention
The present invention relates to storage area networks and network communications, and particularly, to a system for locally caching data obtained via a remote data connection in accordance with an IP-based packet communications protocol.
2. Discussion of the Prior Art
With the advent of the Internet SCSI (Small Computer System Interface) or iSCSI, an Internet Protocol-based storage networking standard, data storage devices may be linked to facilitate the formation of Storage Area Networks (SAN) having increased capabilities and improved performance. As shown in FIG. 1, SANs 19, 29 that include servers and data storage devices 20, 25, 30 may be interconnected over longer distances, e.g. over IP networks, such as the Internet 99. For example, iSCSI may be supported over physical media that supports TCP/IP as a transport, and iSCSI implementations today are preferably on Gigabit Ethernet, supporting speeds of at least 10 Gbyte/sec.
ISCSI, more particularly, comprises the rules and processes to transmit and receive block storage applications over TCP/IP networks, and particularly the iSCSI protocol enables SCSI commands to be encapsulated in TCP/IP packets and delivered over IP networks. Thus, implementing SCSI commands over IP networks may be used to facilitate block-level data transfers over Intranets, local area networks (LANs), wide area networks (WANs), the Internet, and the like, and can enable location-independent data storage and retrieval, e.g., at remote workstations or devices devices 15, 50. The iSCSI additionally permits shared storage solutions such as tape drives and RAID units to be shared over IP.
In such SAN systems, it is desirable to enable a single remote end-user device, e.g., PC or workstation, 15, 50 to locally store or “cache” transferred data (block-level transfers) during a remote SCSI data access. Caching is useful because, often, the user will repeatedly access the same data; having that data in cache makes it quicker to access. Remote end-user devices normally have caches that cache disk contents, however, these are generally RAM-only caching techniques and are limited in terms of amount of storage space. That is, large (e.g., multi-gigabyte) RAM-only caches are only practical in the largest of systems.
While file-level caching techniques are available that allows parts of files to be cached, they do not cache block data transfers.
Further, while proxy server devices and virtualization devices exist that internally cache the contents of an iSCSI disk on their local disks, these are generally large and expensive devices to be used by a large group of people.
Thus, an inexpensive and simple cache solution for a single end-user machine for storing data blocks transferred as packets over networks according to an IP-packet based protocol would be highly desirable.